﻿// 504 构造最长回文数组.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <unordered_map>

using namespace std;

/*
http://oj.daimayuan.top/course/7/problem/484

给定 n个整数 a1,a2,…,an
，你可以在这些数字中选出一部分组成回文数组。注意，我们可以任意排列选出的数字的顺序。

回文数组指的是从前往后和从后往前遍历数组，得到的结果完全一致的数组。

请问从 a1,a2,…,an中选出的最长的回文数组的长度是多少。

输入格式
第一行包含一个整数 n。

接下来一行，包含 n个整数 a1,a2,…,an。

输出格式
输出一行一个数表示答案。

样例输入
6
1 2 1 3 2 4
样例输出
5
样例解释
能组成的最长回文数组为 1 2 3 2 1。

数据规模
对于 100%
 的数据，保证 1≤n≤2×105,0≤ai≤109。
*/

unordered_map<int, int > mm;
int n;


int main()
{
	cin >> n;
	for (int i = 0; i < n; i++) {
		int t; cin >> t;
		mm[t]++;
	}
	int ans = 0; int even = 0; int odd = 0;
	for (auto e : mm) {
		ans += e.second / 2;
		if (e.second % 2 == 1) odd += 1;
	}
	ans = ans * 2;
	if (odd) ans++;
	cout << ans << endl;

	return 0;
}

 